home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
176-200
/
disk_199
/
asimplex
/
simplex.h
< prev
Wrap
C/C++ Source or Header
|
1992-05-06
|
5KB
|
135 lines
/*****************************************************************************
* Variablendeklaration : simplex.h *
* Autor : Stefan Förster *
* *
* Datum | Version | Bemerkung *
* -----------|---------|--------------------------------------------------- *
* 06.02.1989 | 0.0 | *
* 26.02.1989 | 0.1 | EPS_NULL *
* 26.02.1989 | 0.2 | VERBOSE, INVERT_FREQUENCY *
* 05.03.1989 | 0.3 | #include <errno.h> *
* 06.03.1989 | 0.4 | PERCENT auf 0.03 geändert *
* 08.03.1989 | 0.5 | Definitionen für mpsx.c *
* 14.03.1989 | 1.0 | #define ERR_... *
*****************************************************************************/
#include <stdio.h>
#include <signal.h>
#include <errno.h>
#include <ctype.h>
#include <stat.h>
#include <math.h>
#include <exec/exec.h>
#include <exec/tasks.h>
#include <intuition/intuition.h>
#include <intuition/intuitionbase.h>
#define INT int
#define NOT_OPTIMAL (USHORT)0x0001
#define OPTIMAL (USHORT)0x0002
#define NOT_UNBOUNDED (USHORT)0x0004
#define UNBOUNDED (USHORT)0x0008
#define CLEAR_CUT (USHORT)0x0010
#define EMPTY (USHORT)0x0020
#define INVERTABLE (USHORT)0x0040
#define NOT_INVERTABLE (USHORT)0x0080
#define PHASE_I (USHORT)0x0100
#define PHASE_II (USHORT)0x0200
#define SMALLEST_INDEX (USHORT)0x0400
#define STEEPEST_ASCENT (USHORT)0x0800
#define LAMBDA_0 (USHORT)0x1000
#define LAMBDA_1 (USHORT)0x2000
#define LAMBDA_2 (USHORT)0x4000
#define VERBOSE (USHORT)0x8000
#define _TRUE 1
#define _FALSE 0
#define PERCENT 0.03 /* 3% : Kriterium, welche PRICE- */
/* methode angewendet wird */
#define INVERT_FREQUENCY 50L
#define EPS_INV 1e-15 /* Kriterium, daß Matrix singulär */
#define EPS_NULL 1e-13 /* == 0 */
#define ABS(x) ((SHORT)( (x)<0 ? -(x) : (x) ))
#define SGN(x) ((SHORT)( (x)<0 ? -1 : 1)) /* SGN(0)==1 */
#define S_DOUBLE ((LONG)sizeof(DOUBLE))
#define S_SHORT ((LONG)sizeof(SHORT))
#define MAX_STRLEN 8 /* Namen dürfen max. 8 Zeichen lang sein */
#define BUFFER 256
#define BUFFER2 80
#define MAX_FILELEN 80 /* willkürlich */
#define NAME 0
#define ROWS 1
#define GOAL ROWS
#define COLUMNS 2
#define RHS 3
#define RANGES 4
#define BOUNDS 5
#define NUM_SYMBOLS 6
#define VAR_LIST 0
#define ROWS_LIST 1
#define GOALS_LIST 2
#define RHS_LIST 3
#define RANGES_LIST 4
#define BOUNDS_LIST 5
#define NUM_LISTS 6
#define BIT_NAME (USHORT)0x0001
#define BIT_ROWS (USHORT)0x0002
#define BIT_COLUMNS (USHORT)0x0004
#define BIT_RHS (USHORT)0x0008
#define BIT_RANGES (USHORT)0x0010
#define BIT_BOUNDS (USHORT)0x0020
#define BIT_ENDATA (USHORT)0x0040
#define BIT_GOAL (USHORT)0x0080
typedef struct item {
TEXT string[MAX_STRLEN+2];
SHORT nr, anz;
struct item *next;
} ITEM, *ITEMPTR;
#define SIZE_ITEM (LONG)sizeof(ITEM)
#define ERR_INVALID_ARGS sys_nerr+1
#define ERR_NAME_TOO_LONG sys_nerr+2
#define ERR_DOUBLE sys_nerr+3
#define ERR_UNKNOWN_ID sys_nerr+4
#define ERR_SECTIONS sys_nerr+5
#define ERR_2SECTIONS sys_nerr+6
#define ERR_UNKNOWN_SEC sys_nerr+7
#define ERR_ORDER sys_nerr+8
#define ERR_NO_NAME sys_nerr+9
#define ERR_NO_ROWS sys_nerr+10
#define ERR_NO_GOAL sys_nerr+11
#define ERR_NO_COLUMNS sys_nerr+12
#define ERR_NO_RHS sys_nerr+13
#define ERR_NO_ENDATA sys_nerr+14
#define ERR_INV_ROWS_TYPE sys_nerr+15
#define ERR_INV_BOUNDS_TYPE sys_nerr+16
#define ERR_UP_LO sys_nerr+17
#define ERR_INV_RANGES sys_nerr+18
#define ERR_MISSING sys_nerr+19
#define ERR_FILE_TOO_LONG sys_nerr+20
#define ERR_NOT_READ sys_nerr+21
#define ERR_NOT_WRITE sys_nerr+22
#define ERR_EOF sys_nerr+23
#define ERR_MEM sys_nerr+24
#define ERR_FATAL sys_nerr+25